#ifndef DISPLAYWIDGET_H
#define DISPLAYWIDGET_H
#include <QLayoutItem>
#include <QWidget>
#include <QDebug>
#include <QPushButton>
#include <QPropertyAnimation>
#include <QEasingCurve>
#include <QResizeEvent>
#include <QScrollArea>
#include <QFile>
#include <QPixmap>
#include <QTimer>
#include <QFileInfo>
namespace Ui
{
    class displaywidget;
}
typedef enum
{
    UI_H_MENU,
    UI_V_MENU,
} ENUM_menu;
class displaywidget : public QWidget
{
    Q_OBJECT

public:
    explicit displaywidget(QWidget *parent = nullptr);
    ~displaywidget();
    void initializeUI(ENUM_menu menuType);
    void insert_project_menuWidget(QString menuPath, QWidget *menuWidget = nullptr);
    // 新增方法：通过图标名称设置按钮可见性
    void setMenuWidgetVisibleByName(const QString &iconName, bool visible);
    void switchToPageByIconName(const QString &iconName);

    // 报警按钮相关方法
    void insertAlarmButton(QString menuPath, QWidget *menuWidget, const QString &initialText = QString());
    void updateAlarmButtonText(const QString &iconName, const QString &text);
private slots:
    void on_toggleButton_clicked();

private:
    Ui::displaywidget *ui;
    QWidget *parentWidget;
    QPushButton *currentMenuButton; // 当前选中的菜单按钮
    QScrollArea *scrollArea;
    ENUM_menu menuType = UI_H_MENU;
    int menuWidth;
    int pixWidth = 32; // 功能按钮尺寸宽度,宽高1:1
    void insert_menu_pix(QString menuPath);
    void initVmenu();
    void initHmenu();
    void reorderMenuButtons();
    // 添加一个映射关系：图标名称 -> 按钮指针
    QMap<QString, QPushButton *> m_menuButtonsMap;
};

#endif // DISPLAYWIDGET_H
